<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Source</name>
    </assembly>
    <members>
        <member name="T:StreamUnpack">
            <summary>
            Provides unpacking behavior for steams are 
            OPC (Open Packaging Convention) packages/zips.
            </summary>
            <nuget id="netfx-System.IO.Packaging.StreamUnpack" />
        </member>
        <member name="M:StreamUnpack.Unpack(System.IO.Stream,System.String)">
            <summary>
            Unzips the given stream onto the target directory.
            </summary>
            <param name="zipStream" this="true">The stream to unpack</param>
            <param name="targetDir">The target directory where stream will be unpacked</param>
            <remarks>
            If the <paramref name="targetDir"/> already exists, 
            it's deleted before unzipping begins to ensure a 
            clean destination folder.
            <para>
            The compressed stream must be a proper Package in term of XPS/OPC 
            (at a minimum, have a [Content_Types].xml).
            </para>
            </remarks>
            <example>
            <code>
            using (var pkg = File.OpenRead("netfx-Guard.1.2.0.0.nupkg"))
            {
            	pkg.Unpack("TempDir");
            }
            </code>
            </example>
        </member>
        <member name="M:StreamUnpack.Unpack(System.IO.Stream,System.String,System.IO.Stream)">
            <summary>
            From the given stream, unzips the file with the given name 
            onto the given <paramref name="unpacked"/> stream.
            </summary>
            <param name="zipStream" this="true">The stream to unpack</param>
            <param name="fileToUnpack">The file inside te pack to unpack</param>\
            <param name="unpacked">The stream where the file will be unpacked</param>
            <remarks>
            If the <paramref name="fileToUnpack"/> is not found, nothing gets 
            written to <paramref name="unpacked"/>.
            </remarks>
            <returns><see langword="true"/> if the was <paramref name="fileToUnpack"/> 
            found and unpacked; <see langword="false"/> otherwise.</returns>
            <example>
            <code>
            using (var pkg = File.OpenRead("netfx-Guard.1.2.0.0.nupkg"))
            {
            	var stream = new MemoryStream();
            	var succeed = pkg.Unpack("License.txt", stream);
            
            	stream.Position = 0;
            	var content = new StreamReader(stream).ReadToEnd();
            }
            </code>
            </example>
        </member>
        <member name="M:StreamUnpack.Unpack(System.IO.Stream,System.String,System.String[])">
            <summary>
            Unzips the selected files from the zip stream onto the target directory.
            </summary>
            <param name="zipStream" this="true">The stream to unpack</param>
            <param name="targetDir">The target directory where stream will be unpacked</param>
            <param name="filesToUnpack">The files to be unpacked</param>
            <remarks>
            If the <paramref name="targetDir"/> already exists, 
            it's deleted before unzipping begins to ensure a 
            clean destination folder.
            <para>
            The compressed stream must be a proper Package in term of XPS/OPC 
            (at a minimum, have a [Content_Types].xml).
            </para>
            </remarks>
            <example>
            <code>
            using (var pkg = File.OpenRead("netfx-Guard.1.2.0.0.nupkg"))
            {
            	pkg.Unpack("TempDir", "Guard.cs");
            }
            </code>
            </example>
        </member>
        <member name="T:Guard">
            <summary>
            Common guard class for argument validation.
            </summary>
        </member>
        <member name="M:Guard.NotNull``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Ensures the given <paramref name="value"/> is not null.
            Throws <see cref="T:System.ArgumentNullException"/> otherwise.
            </summary>
        </member>
        <member name="M:Guard.NotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}},System.String)">
            <summary>
            Ensures the given string <paramref name="value"/> is not null or empty.
            Throws <see cref="T:System.ArgumentNullException"/> in the first case, or 
            <see cref="T:System.ArgumentException"/> in the latter.
            </summary>
        </member>
        <member name="T:StreamWriteTo">
            <summary>
            Provides WriteTo extension methods to write streams easily to 
            another steam or a target file.
            </summary>
        </member>
        <member name="M:StreamWriteTo.WriteTo(System.IO.Stream,System.String,System.Boolean)">
            <summary>
            Writes the input stream to the target file.
            </summary>
            <param name="source">The source stream to write to the target file.</param>
            <param name="targetFile">The target file to write to.</param>
            <param name="append">If set to <see langword="true"/> and the file exists, then appends the source stream, otherwise, it will overwrite it.</param>
        </member>
        <member name="M:StreamWriteTo.WriteTo(System.IO.Stream,System.IO.Stream)">
            <summary>
            Writes the input stream to the target stream.
            </summary>
            <returns>The written <paramref name="target"/> stream.</returns>
        </member>
    </members>
</doc>
